The subject invention relates to communication on a network among a plurality of devices requesting service and a plurality of service providers. More particularly, it relates to balancing the load of service requests among the service providers.
It is common for devices on a network to request required services from a service provider on the network. Such services may be any type of data service that is more readily carried out by a remote service provider, such as updating of databases, downloading software, remote diagnostics, or computationally intensive operations.
In networks where there is a heavy volume of service requests from a large number of devices, having a number of service providers capable of providing the requested services on the network generally will provide better response, increase reliability, and be more economical than providing a single service provider capable of handling peak loads. Such networks will be more effective if some mechanism for “load balancing” is provided. By “load balancing” herein is meant distributing requests for service substantially uniformly over the service providers on the network. Heretofore, load balancing typically has been carried out by directing all requests to a central site, which would direct the request to one of the service providers.
While effective this method has certain disadvantages. The increase in network traffic to route all requests through a central site may cause a corresponding increase in response time. It is known for some load balancers to redirect a device that uses that address until the connection completes. In this way, the load balancer is only affected by the traffic from devices at the start of connection. Often there is more than one load balancer in the network so that if the primary fails, the backup is discovered (by way of Domain Name Services alternates) and used. Also, such load balancing mechanisms will route requests based on the network address of the requesting device, which may not reflect the actual geographic location of the requesting device and may result in requests being serviced by a geographically remote service provider. (It is believed that the optimum service provider generally will be the geographically closest available service provider.) For these and other reasons, some networks do not provide load balancing.
It is noted that there are load balancers that operate at the ends of a network, but to be effective, they need to operate over a majority of network endpoints. For small to medium applications, such as Internet appliances that only very occasionally connect, this means this type of load balancing is not cost effective.
Thus, it is an object of the subject invention to provide a more effective and simpler method for load balancing on a network, and a device capable of carrying out that method, and a network incorporating such devices.